package conjuntos;

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

/*
 * UN PARRAFO CONTIENE UN ARRAY DE PALABRAS
 * A CADA PALABRA SE LE PUEDE PREGUNTAR CONJUNTO DE:
 * VOCALES / LETRAS / CONSONANTES
 */
public class Parrafo {
	private List<Palabra> palabras;

	/**
	 * @param palabras
	 *            Crea un parrafo a partir de un array de palabras
	 */
	public Parrafo(List<Palabra> palabras) {
		this.palabras = new LinkedList<Palabra>();
		this.palabras.addAll(palabras);
	}

	/**
	 * @param palabras
	 *            asigna array de palabras
	 */
	public void setParrafo(Set<Palabra> nuevoParrafo) {
		this.palabras.clear();
		this.palabras.addAll(nuevoParrafo);
	}

	/**
	 * @return Devuelve cantidad de palabras
	 */
	public int lenght() {
		return this.palabras.size();
	}

	/**
	 * @return Devuelve conjunto de letras en el parrafo
	 */
	public Set<Character> buscarLetrasDentroDelParrafo() {
		Set<Character> letras = new HashSet<Character>();
		Iterator<Palabra> itPalabras = this.palabras.iterator();
		while (itPalabras.hasNext()) {
			letras.addAll(itPalabras.next().buscarLetras());
		}
		return letras;
	}

	/**
	 * @return Devuelve conjunto de vocales en el parrafo
	 */
	public Set<Character> buscarVocalesDentroDelParrafo() {
		Set<Character> letras = new HashSet<Character>();
		Iterator<Palabra> itPalabras = this.palabras.iterator();
		while (itPalabras.hasNext()) {
			letras.addAll(itPalabras.next().buscarVocales());
		}
		return letras;
	}

	/**
	 * @return Devuelve conjunto de consonantes en el parrafo
	 */
	public Set<Character> buscarConsonantesDentroDelParrafo() {
		Set<Character> letras = new HashSet<Character>();
		Iterator<Palabra> itPalabras = this.palabras.iterator();
		while (itPalabras.hasNext()) {
			letras.addAll(itPalabras.next().buscarConsonantes());
		}
		return letras;
	}
	
	public List<Palabra> getPalabras(){
		return this.palabras;
	}

}
